package com.retrozelda.nyanimals;

import android.graphics.RectF;

// NOTE: class prefix is 'I' because it WAS an interface.  changed to abstract on 5/21/2014
// NOTE: can probably get rid of the Cloneable stuff
public abstract class INyanObject implements Cloneable
{
	public enum Type { RECT, NYANIMAL, FOOD, ROOM, PROGRESSBAR, WINDOW, BUTTON, MISC};
	public enum ObjStatus {ACTIVE, DELETE};
	
	ObjStatus m_ObjectStatus = ObjStatus.ACTIVE;
	int m_nDrawPriority = 0;
	
	
	ObjStatus GetObjectStatus() { return m_ObjectStatus;}
	int GetPriority() { return m_nDrawPriority;}
	
	void SetObjectStatus(ObjStatus status) { m_ObjectStatus = status;}
	void SetPriority(int nPriority) { m_nDrawPriority = nPriority;}
	
	public abstract void Init(NyanimalGLSurfaceView game);

	public abstract void Update(float deltaTime);

	public abstract void Draw(CArgumentGroup arg);

	public abstract RectF CheckCollision(INyanObject inner);

	public abstract void HandleCollision(INyanObject inner, RectF overlap);

	public abstract boolean HandleTouch(int nPosX, int nPosY, int nTouchAction);	
	
	public abstract Type GetType();
}
